public class SearchMatrix {
    // leetcode 搜索二维矩阵II
    // https://leetcode.cn/problems/search-a-2d-matrix-ii/description/?envType=study-plan-v2&envId=top-100-liked
    public boolean searchMatrix(int[][] matrix, int target) {
        // 因为矩阵的特性是元素从左到右，从上到下是升序，所以我们可以从行的最大，列的最小开始或者
        // 行的最小值，列的最大值开始找，然后缩小范围
        int n1 = matrix.length, n2 = matrix[0].length;
        int x = 0, y = n2-1;
        while (x < n1 && y >= 0) {
            if (matrix[x][y] == target) return true;
            else if (matrix[x][y] > target) y--;
            else x++;
        }
        return false;
    }
}
